package com.wh1200.mybatis.xmlless.util

import com.wh1200.mybatis.xmlless.constant.PROPERTY_PREFIX
import com.wh1200.mybatis.xmlless.constant.PROPERTY_SUFFIX
import com.wh1200.mybatis.xmlless.constant.Strings

/**
 *
 * @author 吴昊
 * @date 2023/12/12 22:33
 * @since v4.0.0
 * @version 1.0
 */
/**
 * 当结尾以指定字符串结束时，返回去掉结尾指定字符串的新字符串，否则返回当前字符串
 * @param end 指定结尾的字符串
 * @return
 */
internal fun String.trim(end: String): String {
  return when {
    this.endsWith(end) -> this.substring(0, this.length - end.length)
    else               -> this
  }
}

/**
 * 生成mybatis脚本参数占位符
 *
 * @param name
 * @return
 */
internal fun toParameterHolder(name: String): String {
  return "$PROPERTY_PREFIX$name$PROPERTY_SUFFIX"
}


internal fun String.indent(count: Int = 1): String {
  return this.lines().joinToString(Strings.LINE_BREAK) { "  ".repeat(count) + it }
}
